contentdeserializer: Fix some API awkwardness
authorBenjamin Otte <otte@redhat.com>
Mon, 23 Aug 2021 05:06:37 +0000 (07:06 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 30 Aug 2021 04:02:16 +0000 (06:02 +0200)
Allow uninitialized GValues to be passed. Makes life easier for the
inspector code I'm writing.

gdk/gdkcontentdeserializer.c

index f245b4c350289f1db81e41e6916170ab81435220..4959b5af4d39e0bde362714e62e8820ca264fd99 100644 (file)
@@ -553,6 +553,8 @@ gdk_content_deserialize_async (GInputStream        *stream,
   Deserializer *deserializer;
 
   g_return_if_fail (G_IS_INPUT_STREAM (stream));
+  g_return_if_fail (mime_type != NULL);
+  g_return_if_fail (G_TYPE_IS_VALUE_TYPE (type));
   g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
   g_return_if_fail (callback != NULL);
 
@@ -591,7 +593,10 @@ gdk_content_deserialize_finish (GAsyncResult  *result,
   g_return_val_if_fail (GDK_IS_CONTENT_DESERIALIZER (result), FALSE);
   g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
   deserializer = GDK_CONTENT_DESERIALIZER (result);
-  g_return_val_if_fail (G_VALUE_HOLDS (value, G_VALUE_TYPE (&deserializer->value)), FALSE);
+  if (G_VALUE_TYPE (value) == 0)
+    g_value_init (value, G_VALUE_TYPE (&deserializer->value));
+  else
+    g_return_val_if_fail (G_VALUE_HOLDS (value, G_VALUE_TYPE (&deserializer->value)), FALSE);
 
   if (deserializer->error)
     {